iT邦幫忙

DAY 16
1

使用ASP.NET MVC 實作購物網站系列 第 16

使用ASP.NET MVC 實作購物網站 (十六) - 購物車與Session

  • 分享至 

  • xImage
  •  

儲存購物車的方式

使用者瀏覽購物網站時,所選的購物商品資訊應該要被存放在哪裡呢?這是一個暫時性的儲存的資料,通常我們會使用

  1. Cookie

儲存在客戶端的瀏覽器,優點是不需耗費伺服端的記憶體空間,缺點是會暴露資訊在客戶端中

  1. Seesion

儲存在伺服端的記憶體空間,優點是資料有隱秘性,缺點是當同時上線人數超過一定數量,有可能會讓伺服器的記憶體滿載

其中由於Cookie有安全性疑慮,所以我們往後會採用Session的儲存方式來實作購物車..

Session儲存模式

ASP.NET MVC Session有三種儲存模式,分別是

  1. In-Memory : 儲存在運行的Web伺服器記憶體中,如果運行的Web伺服器掛點則Session會消失

  2. State Server : 儲存在某一台伺服器中的記憶體,但此台伺服器會提供狀態服務讓很多不同的Web伺服器連接,Web伺服器掛點不會造成State Server儲存的Session消失

  3. SQL Server : 儲存在某一台SQL Server,Web伺服器掛點不會造成SQL Server儲存的Session消失

根據使用的情境可以自行決定Session的儲存方式,我們決定以最簡單的In-Memory方式來完成,實際上如果要切換為2 or 3的模式,只需要改變Web.config設定檔,原始碼是幾乎不需要改動的.

如何使用Session

在ASP.NET MVC 如何存取Session呢?例如將變數value儲存至Session的某個key值中:

Session["key"] = value;

是不是很簡單呢?

而取出Session也是一樣容易的,例如將Session的某個key值取出,並且設定給value:

var value = Session["key"];

以上例子中的value可以是實值型別(int ; string; ...) 或者是某個類別的物件,對於購物車來說,我們要儲存的資訊會比較多,例如所有購買的商品列表,總價,優惠等資訊.

明天我們開始介紹如何設計購物車類別囉


上一篇
使用ASP.NET MVC 實作購物網站 (十五) - 會員管理後台
下一篇
使用ASP.NET MVC 實作購物網站 (十七) - 購物車類別設計與測試
系列文
使用ASP.NET MVC 實作購物網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言